目次
Home Depot、Kubernetes が稼働する 2,200 以上の店舗をPrometheusでモニタリング
ベアメタル版 Kubernetes が稼働する 2,200 以上の店舗をモニタリング
当社は、オンプレミスのデータセンター、クラウド、そして店舗の片隅で、マネージドおよびセルフマネージドの Kubernetes を組み合わせてアプリケーションを稼働させています。実際に 2,200 以上の各店舗で、ベアメタル版 Kubernetes を動かしています。当社が扱っている膨大な数の指標を想像してみてください。たとえば、データを圧縮しなければ、各店舗からの外向きトラフィックは 20~30 Mbps になります。これらの指標を管理することは、すぐに運用上の大きな負担となりました。特に以下の点で苦労しました。
- ストレージの連携: オープンソースの Prometheus は、スケーリングを考慮して設計されていません。デフォルトでは、1 台のマシン上で稼働し、そのマシン上でローカルに指標を保存します。アプリケーションが拡大していくと、1 台のマシンでは指標をスクレイピングして保存することがすぐにできなくなります。この問題に対処するには、Prometheus の指標を連携させる、つまり複数のマシンから集約して保存します。私たちは当初、オープンソース ソリューションの Thanos を使って指標を集約、保存しようとしましたが、維持するために多くのエンジニアリング リソースが必要となりました。
- 稼働時間: 連携が複雑になるにつれ、増大し続けるインフラストラクチャのフットプリントを維持し、連携構造が崩れるような指標の変更に対処する必要が出てきます。最終的には、指標のスクレイピング、ストレージ、クエリ サービスの稼働に特化したチームを持つことになります。そこで先ほどの質問に戻ります。SRE マネージャーとして、この指標運用は、ハンマーを購入しやすくするものなのか、アウトソーシングを検討すべき運用上の重荷なのか?
Managed Service for Prometheus が提供する The Home Depot の IT フットプリントの図
The Home Depot のオブザーバビリティを高める一括表示の作成
SRE ディレクターである私の業務のひとつに、優れたアプリケーションの作成に利用できるプロセスやツールを提供し、チームの開発者やオペレーターがより効率的に作業できるようにすることがあります。当社のオブザーバビリティ スタックは、ログ、指標、トレースを結合させて包括的に表示し、IT フットプリント全体を可視化して、根本原因の分析に必要なデータを提供します。
The Home Depot の 2,200 以上の店舗で使われている、集約された指標のダッシュボード表示